from flask import session, render_template, current_app
from . import news_blue
from info.models import User


@news_blue.route('/')
def index():
    """
       项目首页数据加载
           检查用户的登录状态：
           1、如果用户登录了，显示用户名信息，否则提供登录注册入口。
           2、使用session对象，从redis中获取user_id。
           3、根据user_id，查询mysql，获取用户信息
           4、传给模板

       :return:
       """
    # 使用请求上下文对象，获取user_id
    user_id = session.get('user_id')
    user = None
    # 查询mysql，获取用户信息
    try:
        # User.query.filter_by(id=user_id).first()
        # User.query.filter(User.id==user_id).first()
        user = User.query.get(user_id)
    except Exception as e:
        current_app.logger.error(e)

    # 定义字典，用来存储返回给模板的数据
    data = {
        'user_info': user.to_dict() if user else None
    }

    return render_template('news/index.html', data=data)


# 加载logo,浏览器默认访问静态目录下的favicon.ico文件
@news_blue.route('/favicon.ico')
def logo():

    return current_app.send_static_file('news/favicon.ico')
